#
# SPDX-License-Identifier: ISC
#
# Copyright (c) 2010-2024 Todd C. Miller <Todd.Miller@sudo.ws>
#
# Permission to use, copy, modify, and distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
# @configure_input@
#

#### Start of system configuration section. ####

srcdir = @srcdir@
abs_srcdir = @abs_srcdir@
top_srcdir = @top_srcdir@
abs_top_srcdir = @abs_top_srcdir@
top_builddir = @top_builddir@
abs_top_builddir = @abs_top_builddir@
devdir = @devdir@
scriptdir = $(top_srcdir)/scripts
incdir = $(top_srcdir)/include
rundir = @rundir@
cross_compiling = @CROSS_COMPILING@

# Compiler & tools to use
CC = @CC@
CPP = @CPP@
LIBTOOL = @LIBTOOL@
EGREP = @EGREP@
SED = @SED@
AWK = @AWK@

# Our install program supports extra flags...
INSTALL = $(SHELL) $(scriptdir)/install-sh -c
INSTALL_OWNER = -o $(install_uid) -g $(install_gid)
INSTALL_BACKUP = @INSTALL_BACKUP@

# Libraries
LIBPROTOBUF_C = $(top_builddir)/lib/protobuf-c/libprotobuf-c.la
LIBUTIL = $(top_builddir)/lib/util/libsudo_util.la
LT_LIBS = $(LIBUTIL) $(LIBPROTOBUF_C)
LIBS = @LIBS@ @SUDO_LIBS@ @GETGROUPS_LIB@ @NET_LIBS@ $(LT_LIBS)

# C preprocessor defines
CPPDEFS = -D_PATH_SUDO_CONF=\"@sudo_conf@\" \
	  -DLOCALEDIR=\"$(localedir)\"

# C preprocessor flags
CPPFLAGS = -I$(incdir) -I$(top_builddir) -I. -I$(srcdir) $(CPPDEFS) @CPPFLAGS@

# Usually -O and/or -g
CFLAGS = @CFLAGS@

# Flags to pass to the link stage
LDFLAGS = @LDFLAGS@
SUDO_LDFLAGS = $(LDFLAGS) @SUDO_LDFLAGS@
INTERCEPT_LDFLAGS = @LT_LDFLAGS@ @LT_LDEXPORTS@
NOEXEC_LDFLAGS = @LT_LDFLAGS@

# Flags to pass to libtool
LTFLAGS = --tag=disable-static

# Flag to build sudo_module.so and sudo_noexec.so as modules instead of
# shared libs (except on macOS)
PRELOAD_MODULE = @PRELOAD_MODULE@

# Address sanitizer flags
ASAN_CFLAGS = @ASAN_CFLAGS@
ASAN_LDFLAGS = @ASAN_LDFLAGS@

# PIE flags
PIE_CFLAGS = @PIE_CFLAGS@
PIE_LDFLAGS = @PIE_LDFLAGS@

# Stack smashing protection flags
HARDENING_CFLAGS = @HARDENING_CFLAGS@
HARDENING_LDFLAGS = @HARDENING_LDFLAGS@

# cppcheck options, usually set in the top-level Makefile
CPPCHECK_OPTS = -q --enable=warning,performance,portability --suppress=constStatement --suppress=compareBoolExpressionWithInt --error-exitcode=1 --inline-suppr -Dva_copy=va_copy -U__cplusplus -UQUAD_MAX -UQUAD_MIN -UUQUAD_MAX -U_POSIX_PATH_MAX -U__NBBY

# splint options, usually set in the top-level Makefile
SPLINT_OPTS = -D__restrict= -checks

# PVS-studio options
PVS_CFG = $(top_srcdir)/PVS-Studio.cfg
PVS_IGNORE = 'V707,V011,V002,V536,V795'
PVS_LOG_OPTS = -a 'GA:1,2' -e -t errorfile -d $(PVS_IGNORE)

# Where to install things...
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
sysconfdir = @sysconfdir@
adminconfdir = @adminconfdir@
libexecdir = @libexecdir@
datarootdir = @datarootdir@
localedir = @localedir@
localstatedir = @localstatedir@
interceptfile = @INTERCEPTFILE@
interceptdir = @INTERCEPTDIR@
noexecfile = @NOEXECFILE@
noexecdir = @NOEXECDIR@
tmpfiles_d = @TMPFILES_D@

# User and group ids the installed files should be "owned" by
install_uid = 0
install_gid = 0

# File extension, mode and map file to use for shared libraries/objects
shlib_enable = @SHLIB_ENABLE@
shlib_mode = @SHLIB_MODE@
shlib_exp = ./intercept.exp
shlib_map = intercept.map
shlib_opt = intercept.opt

# Optional init script and rc.d link
INIT_DIR=@INIT_DIR@
INIT_SCRIPT=@INIT_SCRIPT@
RC_LINK=@RC_LINK@

TEST_PROGS = check_net_ifs check_noexec check_ttyname
TEST_LIBS = @LIBS@ $(LT_LIBS)
TEST_LDFLAGS = @LDFLAGS@
TEST_VERBOSE =

# Set to non-empty for development mode
DEVEL = @DEVEL@

#### End of system configuration section. ####

SHELL = @SHELL@

PROGS = @PROGS@

OBJS = conversation.o copy_file.o edit_open.o env_hooks.o exec.o \
       exec_common.o exec_intercept.o exec_iolog.o exec_monitor.o \
       exec_nopty.o exec_preload.o exec_ptrace.o exec_pty.o get_pty.o \
       hooks.o limits.o load_plugins.o net_ifs.o parse_args.o preserve_fds.o \
       signal.o sudo.o sudo_edit.o suspend_parent.o tgetpass.o ttyname.o \
       utmp.o @SUDO_OBJS@

IOBJS = $(OBJS:.o=.i) sesh.i sudo_intercept.i sudo_intercept_common.i

POBJS = $(IOBJS:.i=.plog)

SESH_OBJS = copy_file.o edit_open.o exec_common.o exec_preload.o sesh.o

INTERCEPT_OBJS = exec_preload.lo sudo_intercept.lo sudo_intercept_common.lo \
		 intercept.pb-c.lo

CHECK_NET_IFS_OBJS = check_net_ifs.o net_ifs.o

CHECK_NOEXEC_OBJS = check_noexec.o exec_common.o exec_preload.o

CHECK_TTYNAME_OBJS = check_ttyname.o ttyname.o

TEST_PTRACE_OBJS = suspend_parent.o test_ptrace.o

LIBOBJDIR = $(top_builddir)/@ac_config_libobj_dir@/

VERSION = @PACKAGE_VERSION@

GENERATED = intercept.pb-c.h intercept.pb-c.c

all: $(PROGS)

depend:
	$(scriptdir)/mkdep.pl --srcdir=$(abs_top_srcdir) \
	    --builddir=$(abs_top_builddir) src/Makefile.in
	cd $(top_builddir) && ./config.status --file src/Makefile

Makefile: $(srcdir)/Makefile.in
	cd $(top_builddir) && ./config.status --file src/Makefile

./sudo_usage.h: $(srcdir)/sudo_usage.h.in
	cd $(top_builddir) && ./config.status --file src/sudo_usage.h

.SUFFIXES: .c .h .i .lo .o .plog

.c.o:
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $<

.c.lo:
	$(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $<

.c.i:
	$(CPP) $(CPPFLAGS) $< > $@

.i.plog:
	ifile=$<; rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $${ifile%i}c --i-file $< --output-file $@

$(devdir)/intercept.pb-c.c: $(srcdir)/intercept.proto
	@if [ -n "$(DEVEL)" ]; then \
	    cmd='protoc --c_out=$(devdir) --proto_path=$(srcdir) $(srcdir)/intercept.proto'; \
	    echo "$$cmd"; eval $$cmd; \
	    cmd='$(scriptdir)/unanon $(devdir)/intercept.pb-c.h $(devdir)/intercept.pb-c.c'; \
	    echo "$$cmd"; eval $$cmd; \
	    if [ "$(devdir)" == "$(srcdir)" ]; then \
		cmd='mv -f $(devdir)/intercept.pb-c.h $(incdir)/intercept.pb-c.h'; \
	    else \
		cmd='mv -f $(devdir)/intercept.pb-c.h $(top_builddir)/intercept.pb-c.h'; \
	    fi; \
	    echo "$$cmd"; eval $$cmd; \
	fi

sudo: $(OBJS) $(LT_LIBS) @STATIC_SUDOERS@
	$(LIBTOOL) $(LTFLAGS) --mode=link $(CC) -o $@ $(OBJS) $(SUDO_LDFLAGS) $(ASAN_LDFLAGS) $(PIE_LDFLAGS) $(HARDENING_LDFLAGS) $(LIBS) @STATIC_SUDOERS@

$(shlib_map): $(shlib_exp)
	@$(AWK) 'BEGIN { print "{\n\tglobal:" } { print "\t\t"$$0";" } END { print "\tlocal:\n\t\t*;\n};" }' $(shlib_exp) > $@

$(shlib_opt): $(shlib_exp)
	@$(SED) 's/^/+e /' $(shlib_exp) > $@

sudo_intercept.la: $(INTERCEPT_OBJS) @LT_LDDEP@
	$(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LDFLAGS) $(INTERCEPT_LDFLAGS) $(ASAN_LDFLAGS) $(HARDENING_LDFLAGS) $(LT_LIBS) @LIBDL@ -o $@ $(INTERCEPT_OBJS) $(PRELOAD_MODULE) -avoid-version -rpath $(interceptdir) -shrext .so

sudo_noexec.la: sudo_noexec.lo
	$(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LDFLAGS) $(NOEXEC_LDFLAGS) $(HARDENING_LDFLAGS) @LIBDL@ -o $@ sudo_noexec.lo $(PRELOAD_MODULE) -avoid-version -rpath $(noexecdir) -shrext .so

sesh: $(SESH_OBJS) $(LT_LIBS)
	$(LIBTOOL) $(LTFLAGS) --mode=link $(CC) -o $@ $(SESH_OBJS) $(LDFLAGS) $(ASAN_LDFLAGS) $(PIE_LDFLAGS) $(HARDENING_LDFLAGS) $(LIBS)

check_net_ifs: $(CHECK_NET_IFS_OBJS) $(LIBUTIL)
	$(LIBTOOL) $(LTFLAGS) --mode=link $(CC) -o $@ $(CHECK_NET_IFS_OBJS) $(TEST_LDFLAGS) $(ASAN_LDFLAGS) $(PIE_LDFLAGS) $(HARDENING_LDFLAGS) $(TEST_LIBS)

check_noexec: $(CHECK_NOEXEC_OBJS) $(LIBUTIL)
	$(LIBTOOL) $(LTFLAGS) --mode=link $(CC) -o $@ $(CHECK_NOEXEC_OBJS) $(TEST_LDFLAGS) $(ASAN_LDFLAGS) $(PIE_LDFLAGS) $(HARDENING_LDFLAGS) $(TEST_LIBS)

check_ttyname: $(CHECK_TTYNAME_OBJS) $(LIBUTIL)
	$(LIBTOOL) $(LTFLAGS) --mode=link $(CC) -o $@ $(CHECK_TTYNAME_OBJS) $(TEST_LDFLAGS) $(ASAN_LDFLAGS) $(PIE_LDFLAGS) $(HARDENING_LDFLAGS) $(TEST_LIBS)

test_ptrace: $(TEST_PTRACE_OBJS) $(LIBUTIL)
	$(LIBTOOL) $(LTFLAGS) --mode=link $(CC) -o $@ $(TEST_PTRACE_OBJS) $(TEST_LDFLAGS) $(ASAN_LDFLAGS) $(PIE_LDFLAGS) $(HARDENING_LDFLAGS) $(TEST_LIBS)

pre-install:

install: install-binaries install-rc @INSTALL_INTERCEPT@ @INSTALL_NOEXEC@

install-dirs:
	# We only create the rc.d dir when installing to the actual system dir
	$(SHELL) $(scriptdir)/mkinstalldirs $(DESTDIR)$(bindir) \
	    $(DESTDIR)$(libexecdir)/sudo $(DESTDIR)$(noexecdir) \
	    $(DESTDIR)$(interceptdir)
	if test -n "$(INIT_SCRIPT)"; then \
	    $(SHELL) $(scriptdir)/mkinstalldirs $(DESTDIR)$(INIT_DIR); \
	    if test -z "$(DESTDIR)"; then \
		$(SHELL) $(scriptdir)/mkinstalldirs \
		    `echo $(RC_LINK) | $(SED) 's,/[^/]*$$,,'`; \
	    fi; \
	elif test -n "$(tmpfiles_d)"; then \
	    $(SHELL) $(scriptdir)/mkinstalldirs $(DESTDIR)$(tmpfiles_d); \
	fi

install-rc: install-dirs
	# We only create the rc.d link when installing to the actual system dir
	if [ -n "$(INIT_SCRIPT)" ]; then \
	    $(INSTALL) $(INSTALL_OWNER) -m 0755 $(top_builddir)/etc/init.d/$(INIT_SCRIPT) $(DESTDIR)$(INIT_DIR)/sudo; \
	    if test -z "$(DESTDIR)"; then \
		rm -f $(RC_LINK); \
		ln -s $(INIT_DIR)/sudo $(RC_LINK); \
	    fi; \
	elif test -n "$(tmpfiles_d)"; then \
	    $(INSTALL) $(INSTALL_OWNER) -m 0644 $(top_builddir)/etc/init.d/sudo.conf $(DESTDIR)$(tmpfiles_d)/sudo.conf; \
	fi

install-binaries: install-dirs $(PROGS)
	INSTALL_BACKUP='$(INSTALL_BACKUP)' $(LIBTOOL) $(LTFLAGS) --mode=install $(INSTALL) $(INSTALL_OWNER) -m 04755 sudo $(DESTDIR)$(bindir)/sudo
	rm -f $(DESTDIR)$(bindir)/sudoedit
	ln -s sudo $(DESTDIR)$(bindir)/sudoedit
	if [ -f sesh ]; then \
	    INSTALL_BACKUP='$(INSTALL_BACKUP)' $(LIBTOOL) $(LTFLAGS) --mode=install $(INSTALL) $(INSTALL_OWNER) -m 0755 sesh $(DESTDIR)$(libexecdir)/sudo/sesh; \
	fi

install-doc:

install-includes:

install-intercept: install-dirs sudo_intercept.la
	if [ X"$(shlib_enable)" = X"yes" ]; then \
	    INSTALL_BACKUP='$(INSTALL_BACKUP)' $(LIBTOOL) $(LTFLAGS) --mode=install $(INSTALL) $(INSTALL_OWNER) -m $(shlib_mode) sudo_intercept.la $(DESTDIR)$(interceptdir); \
	fi

install-noexec: install-dirs sudo_noexec.la
	if [ X"$(shlib_enable)" = X"yes" ]; then \
	    INSTALL_BACKUP='$(INSTALL_BACKUP)' $(LIBTOOL) $(LTFLAGS) --mode=install $(INSTALL) $(INSTALL_OWNER) -m $(shlib_mode) sudo_noexec.la $(DESTDIR)$(noexecdir); \
	fi

install-plugin:

install-fuzzer:

uninstall:
	-$(LIBTOOL) $(LTFLAGS) --mode=uninstall \
	    rm -f $(DESTDIR)$(interceptdir)/sudo_intercept.la \
		  $(DESTDIR)$(noexecdir)/sudo_noexec.la
	-rm -f	$(DESTDIR)$(bindir)/sudo \
		$(DESTDIR)$(bindir)/sudoedit \
		$(DESTDIR)$(libexecdir)/sudo/sesh \
		$(DESTDIR)/usr/lib/tmpfiles.d/sudo.conf
	-test -z "$(INSTALL_BACKUP)" || \
	    rm -f $(DESTDIR)$(bindir)/sudo$(INSTALL_BACKUP) \
		  $(DESTDIR)$(libexecdir)/sudo/sesh$(INSTALL_BACKUP) \
		  $(DESTDIR)$(interceptdir)/sudo_intercept.so$(INSTALL_BACKUP) \
		  $(DESTDIR)$(noexecdir)/sudo_noexec.so$(INSTALL_BACKUP)
	-test -z "$(INIT_SCRIPT)" || \
	    rm -f $(DESTDIR)$(RC_LINK) $(DESTDIR)$(INIT_DIR)/sudo

splint:
	splint $(SPLINT_OPTS) -I$(incdir) -I$(top_builddir) -I. -I$(srcdir) $(srcdir)/*.c

cppcheck:
	cppcheck $(CPPCHECK_OPTS) -I$(incdir) -I$(top_builddir) -I. -I$(srcdir) $(srcdir)/*.c

pvs-log-files: $(POBJS)

pvs-studio: $(POBJS)
	plog-converter $(PVS_LOG_OPTS) $(POBJS)

fuzz:

check-fuzzer:

check: $(TEST_PROGS) check-fuzzer
	@if test X"$(cross_compiling)" != X"yes"; then \
	    l=`locale -a 2>&1 | $(EGREP) -i '^C\.UTF-?8$$' | $(SED) 1q` || true; \
	    test -n "$$l" || l="C"; \
	    LC_ALL="$$l"; export LC_ALL; \
	    unset LANG || LANG=; \
	    unset LANGUAGE || LANGUAGE=; \
	    MALLOC_OPTIONS=S; export MALLOC_OPTIONS; \
	    MALLOC_CONF="abort:true,junk:true"; export MALLOC_CONF; \
	    ./check_net_ifs $(TEST_VERBOSE); \
	    if [ -f .libs/$(noexecfile) ]; then \
		./check_noexec $(TEST_VERBOSE) .libs/$(noexecfile); \
	    fi; \
	    ./check_ttyname $(TEST_VERBOSE); \
	fi

check-verbose:
	exec $(MAKE) $(MFLAGS) TEST_VERBOSE=-v FUZZ_VERBOSE=-verbosity=1 check

clean:
	-$(LIBTOOL) $(LTFLAGS) --mode=clean rm -f $(PROGS) $(TEST_PROGS) \
	    *.lo *.o *.la
	-rm -f *.i *.plog stamp-* core *.core core.*

mostlyclean: clean

distclean: clean
	-rm -rf Makefile intercept.exp sudo_usage.h \
	    .libs $(shlib_map) $(shlib_opt)
	@if [ -n "$(DEVEL)" -a "$(devdir)" != "$(srcdir)" ]; then \
	    cmd='rm -rf $(GENERATED)'; \
	    echo "$$cmd"; eval $$cmd; \
	fi

clobber: distclean

realclean: distclean
	rm -f TAGS tags

cleandir: realclean

.PHONY: clean mostlyclean distclean cleandir clobber realclean

# *Not* auto-generated to avoid building with ASAN
sudo_noexec.lo: $(srcdir)/sudo_noexec.c $(incdir)/sudo_compat.h \
		$(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/sudo_noexec.c

# Autogenerated dependencies, do not modify
apparmor.o: $(srcdir)/apparmor.c $(incdir)/compat/stdbool.h \
            $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
            $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
            $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
            $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
            $(incdir)/sudo_util.h $(srcdir)/sudo.h $(top_builddir)/config.h \
            $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/apparmor.c
apparmor.i: $(srcdir)/apparmor.c $(incdir)/compat/stdbool.h \
            $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
            $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
            $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
            $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
            $(incdir)/sudo_util.h $(srcdir)/sudo.h $(top_builddir)/config.h \
            $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/apparmor.c > $@
apparmor.plog: apparmor.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/apparmor.c --i-file apparmor.i --output-file $@
check_net_ifs.o: $(srcdir)/regress/net_ifs/check_net_ifs.c \
                 $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \
                 $(incdir)/sudo_util.h $(top_builddir)/config.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/regress/net_ifs/check_net_ifs.c
check_net_ifs.i: $(srcdir)/regress/net_ifs/check_net_ifs.c \
                 $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \
                 $(incdir)/sudo_util.h $(top_builddir)/config.h
	$(CPP) $(CPPFLAGS) $(srcdir)/regress/net_ifs/check_net_ifs.c > $@
check_net_ifs.plog: check_net_ifs.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/regress/net_ifs/check_net_ifs.c --i-file check_net_ifs.i --output-file $@
check_noexec.o: $(srcdir)/regress/noexec/check_noexec.c \
                $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \
                $(incdir)/sudo_fatal.h $(incdir)/sudo_plugin.h \
                $(incdir)/sudo_queue.h $(incdir)/sudo_util.h \
                $(srcdir)/sudo_exec.h $(top_builddir)/config.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/regress/noexec/check_noexec.c
check_noexec.i: $(srcdir)/regress/noexec/check_noexec.c \
                $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \
                $(incdir)/sudo_fatal.h $(incdir)/sudo_plugin.h \
                $(incdir)/sudo_queue.h $(incdir)/sudo_util.h \
                $(srcdir)/sudo_exec.h $(top_builddir)/config.h
	$(CPP) $(CPPFLAGS) $(srcdir)/regress/noexec/check_noexec.c > $@
check_noexec.plog: check_noexec.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/regress/noexec/check_noexec.c --i-file check_noexec.i --output-file $@
check_ttyname.o: $(srcdir)/regress/ttyname/check_ttyname.c \
                 $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \
                 $(incdir)/sudo_debug.h $(incdir)/sudo_fatal.h \
                 $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
                 $(incdir)/sudo_util.h $(top_builddir)/config.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/regress/ttyname/check_ttyname.c
check_ttyname.i: $(srcdir)/regress/ttyname/check_ttyname.c \
                 $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \
                 $(incdir)/sudo_debug.h $(incdir)/sudo_fatal.h \
                 $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
                 $(incdir)/sudo_util.h $(top_builddir)/config.h
	$(CPP) $(CPPFLAGS) $(srcdir)/regress/ttyname/check_ttyname.c > $@
check_ttyname.plog: check_ttyname.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/regress/ttyname/check_ttyname.c --i-file check_ttyname.i --output-file $@
conversation.o: $(srcdir)/conversation.c $(incdir)/compat/stdbool.h \
                $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
                $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
                $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
                $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
                $(incdir)/sudo_util.h $(srcdir)/sudo.h \
                $(srcdir)/sudo_plugin_int.h $(top_builddir)/config.h \
                $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/conversation.c
conversation.i: $(srcdir)/conversation.c $(incdir)/compat/stdbool.h \
                $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
                $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
                $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
                $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
                $(incdir)/sudo_util.h $(srcdir)/sudo.h \
                $(srcdir)/sudo_plugin_int.h $(top_builddir)/config.h \
                $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/conversation.c > $@
conversation.plog: conversation.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/conversation.c --i-file conversation.i --output-file $@
copy_file.o: $(srcdir)/copy_file.c $(incdir)/compat/stdbool.h \
             $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
             $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
             $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
             $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
             $(incdir)/sudo_util.h $(srcdir)/sudo.h $(srcdir)/sudo_edit.h \
             $(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/copy_file.c
copy_file.i: $(srcdir)/copy_file.c $(incdir)/compat/stdbool.h \
             $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
             $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
             $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
             $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
             $(incdir)/sudo_util.h $(srcdir)/sudo.h $(srcdir)/sudo_edit.h \
             $(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/copy_file.c > $@
copy_file.plog: copy_file.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/copy_file.c --i-file copy_file.i --output-file $@
edit_open.o: $(srcdir)/edit_open.c $(incdir)/compat/stdbool.h \
             $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
             $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
             $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
             $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
             $(incdir)/sudo_util.h $(srcdir)/sudo.h $(srcdir)/sudo_edit.h \
             $(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/edit_open.c
edit_open.i: $(srcdir)/edit_open.c $(incdir)/compat/stdbool.h \
             $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
             $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
             $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
             $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
             $(incdir)/sudo_util.h $(srcdir)/sudo.h $(srcdir)/sudo_edit.h \
             $(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/edit_open.c > $@
edit_open.plog: edit_open.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/edit_open.c --i-file edit_open.i --output-file $@
env_hooks.o: $(srcdir)/env_hooks.c $(incdir)/compat/stdbool.h \
             $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
             $(incdir)/sudo_debug.h $(incdir)/sudo_dso.h \
             $(incdir)/sudo_event.h $(incdir)/sudo_fatal.h \
             $(incdir)/sudo_gettext.h $(incdir)/sudo_plugin.h \
             $(incdir)/sudo_queue.h $(incdir)/sudo_util.h $(srcdir)/sudo.h \
             $(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/env_hooks.c
env_hooks.i: $(srcdir)/env_hooks.c $(incdir)/compat/stdbool.h \
             $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
             $(incdir)/sudo_debug.h $(incdir)/sudo_dso.h \
             $(incdir)/sudo_event.h $(incdir)/sudo_fatal.h \
             $(incdir)/sudo_gettext.h $(incdir)/sudo_plugin.h \
             $(incdir)/sudo_queue.h $(incdir)/sudo_util.h $(srcdir)/sudo.h \
             $(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/env_hooks.c > $@
env_hooks.plog: env_hooks.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/env_hooks.c --i-file env_hooks.i --output-file $@
exec.o: $(srcdir)/exec.c $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \
        $(incdir)/sudo_conf.h $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
        $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
        $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h $(incdir)/sudo_util.h \
        $(srcdir)/sudo.h $(srcdir)/sudo_exec.h $(srcdir)/sudo_plugin_int.h \
        $(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/exec.c
exec.i: $(srcdir)/exec.c $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \
        $(incdir)/sudo_conf.h $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
        $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
        $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h $(incdir)/sudo_util.h \
        $(srcdir)/sudo.h $(srcdir)/sudo_exec.h $(srcdir)/sudo_plugin_int.h \
        $(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/exec.c > $@
exec.plog: exec.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/exec.c --i-file exec.i --output-file $@
exec_common.o: $(srcdir)/exec_common.c $(incdir)/compat/stdbool.h \
               $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
               $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
               $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
               $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
               $(incdir)/sudo_util.h $(srcdir)/sudo.h $(srcdir)/sudo_exec.h \
               $(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/exec_common.c
exec_common.i: $(srcdir)/exec_common.c $(incdir)/compat/stdbool.h \
               $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
               $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
               $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
               $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
               $(incdir)/sudo_util.h $(srcdir)/sudo.h $(srcdir)/sudo_exec.h \
               $(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/exec_common.c > $@
exec_common.plog: exec_common.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/exec_common.c --i-file exec_common.i --output-file $@
exec_intercept.o: $(srcdir)/exec_intercept.c $(incdir)/compat/stdbool.h \
                  $(incdir)/intercept.pb-c.h $(incdir)/protobuf-c/protobuf-c.h \
                  $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
                  $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
                  $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
                  $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
                  $(incdir)/sudo_rand.h $(incdir)/sudo_util.h \
                  $(srcdir)/exec_intercept.h $(srcdir)/sudo.h \
                  $(srcdir)/sudo_exec.h $(srcdir)/sudo_plugin_int.h \
                  $(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/exec_intercept.c
exec_intercept.i: $(srcdir)/exec_intercept.c $(incdir)/compat/stdbool.h \
                  $(incdir)/intercept.pb-c.h $(incdir)/protobuf-c/protobuf-c.h \
                  $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
                  $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
                  $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
                  $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
                  $(incdir)/sudo_rand.h $(incdir)/sudo_util.h \
                  $(srcdir)/exec_intercept.h $(srcdir)/sudo.h \
                  $(srcdir)/sudo_exec.h $(srcdir)/sudo_plugin_int.h \
                  $(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/exec_intercept.c > $@
exec_intercept.plog: exec_intercept.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/exec_intercept.c --i-file exec_intercept.i --output-file $@
exec_iolog.o: $(srcdir)/exec_iolog.c $(incdir)/compat/stdbool.h \
              $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
              $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
              $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
              $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
              $(incdir)/sudo_util.h $(srcdir)/sudo.h $(srcdir)/sudo_exec.h \
              $(srcdir)/sudo_plugin_int.h $(top_builddir)/config.h \
              $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/exec_iolog.c
exec_iolog.i: $(srcdir)/exec_iolog.c $(incdir)/compat/stdbool.h \
              $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
              $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
              $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
              $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
              $(incdir)/sudo_util.h $(srcdir)/sudo.h $(srcdir)/sudo_exec.h \
              $(srcdir)/sudo_plugin_int.h $(top_builddir)/config.h \
              $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/exec_iolog.c > $@
exec_iolog.plog: exec_iolog.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/exec_iolog.c --i-file exec_iolog.i --output-file $@
exec_monitor.o: $(srcdir)/exec_monitor.c $(incdir)/compat/stdbool.h \
                $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
                $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
                $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
                $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
                $(incdir)/sudo_util.h $(srcdir)/sudo.h $(srcdir)/sudo_exec.h \
                $(srcdir)/sudo_plugin_int.h $(top_builddir)/config.h \
                $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/exec_monitor.c
exec_monitor.i: $(srcdir)/exec_monitor.c $(incdir)/compat/stdbool.h \
                $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
                $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
                $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
                $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
                $(incdir)/sudo_util.h $(srcdir)/sudo.h $(srcdir)/sudo_exec.h \
                $(srcdir)/sudo_plugin_int.h $(top_builddir)/config.h \
                $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/exec_monitor.c > $@
exec_monitor.plog: exec_monitor.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/exec_monitor.c --i-file exec_monitor.i --output-file $@
exec_nopty.o: $(srcdir)/exec_nopty.c $(incdir)/compat/stdbool.h \
              $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
              $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
              $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
              $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
              $(incdir)/sudo_util.h $(srcdir)/sudo.h $(srcdir)/sudo_exec.h \
              $(srcdir)/sudo_plugin_int.h $(top_builddir)/config.h \
              $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/exec_nopty.c
exec_nopty.i: $(srcdir)/exec_nopty.c $(incdir)/compat/stdbool.h \
              $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
              $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
              $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
              $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
              $(incdir)/sudo_util.h $(srcdir)/sudo.h $(srcdir)/sudo_exec.h \
              $(srcdir)/sudo_plugin_int.h $(top_builddir)/config.h \
              $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/exec_nopty.c > $@
exec_nopty.plog: exec_nopty.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/exec_nopty.c --i-file exec_nopty.i --output-file $@
exec_preload.lo: $(srcdir)/exec_preload.c $(incdir)/compat/stdbool.h \
                 $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
                 $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
                 $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
                 $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
                 $(incdir)/sudo_util.h $(srcdir)/sudo.h $(srcdir)/sudo_exec.h \
                 $(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/exec_preload.c
exec_preload.i: $(srcdir)/exec_preload.c $(incdir)/compat/stdbool.h \
                 $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
                 $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
                 $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
                 $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
                 $(incdir)/sudo_util.h $(srcdir)/sudo.h $(srcdir)/sudo_exec.h \
                 $(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/exec_preload.c > $@
exec_preload.plog: exec_preload.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/exec_preload.c --i-file exec_preload.i --output-file $@
exec_preload.o: $(srcdir)/exec_preload.c $(incdir)/compat/stdbool.h \
                $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
                $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
                $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
                $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
                $(incdir)/sudo_util.h $(srcdir)/sudo.h $(srcdir)/sudo_exec.h \
                $(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/exec_preload.c
exec_ptrace.o: $(srcdir)/exec_ptrace.c $(incdir)/compat/endian.h \
               $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \
               $(incdir)/sudo_conf.h $(incdir)/sudo_debug.h \
               $(incdir)/sudo_event.h $(incdir)/sudo_fatal.h \
               $(incdir)/sudo_gettext.h $(incdir)/sudo_plugin.h \
               $(incdir)/sudo_queue.h $(incdir)/sudo_util.h \
               $(srcdir)/exec_intercept.h $(srcdir)/exec_ptrace.h \
               $(srcdir)/sudo.h $(srcdir)/sudo_exec.h $(top_builddir)/config.h \
               $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/exec_ptrace.c
exec_ptrace.i: $(srcdir)/exec_ptrace.c $(incdir)/compat/endian.h \
               $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \
               $(incdir)/sudo_conf.h $(incdir)/sudo_debug.h \
               $(incdir)/sudo_event.h $(incdir)/sudo_fatal.h \
               $(incdir)/sudo_gettext.h $(incdir)/sudo_plugin.h \
               $(incdir)/sudo_queue.h $(incdir)/sudo_util.h \
               $(srcdir)/exec_intercept.h $(srcdir)/exec_ptrace.h \
               $(srcdir)/sudo.h $(srcdir)/sudo_exec.h $(top_builddir)/config.h \
               $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/exec_ptrace.c > $@
exec_ptrace.plog: exec_ptrace.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/exec_ptrace.c --i-file exec_ptrace.i --output-file $@
exec_pty.o: $(srcdir)/exec_pty.c $(incdir)/compat/stdbool.h \
            $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
            $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
            $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
            $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
            $(incdir)/sudo_util.h $(srcdir)/sudo.h $(srcdir)/sudo_exec.h \
            $(srcdir)/sudo_plugin_int.h $(top_builddir)/config.h \
            $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/exec_pty.c
exec_pty.i: $(srcdir)/exec_pty.c $(incdir)/compat/stdbool.h \
            $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
            $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
            $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
            $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
            $(incdir)/sudo_util.h $(srcdir)/sudo.h $(srcdir)/sudo_exec.h \
            $(srcdir)/sudo_plugin_int.h $(top_builddir)/config.h \
            $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/exec_pty.c > $@
exec_pty.plog: exec_pty.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/exec_pty.c --i-file exec_pty.i --output-file $@
get_pty.o: $(srcdir)/get_pty.c $(incdir)/compat/stdbool.h \
           $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
           $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
           $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
           $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
           $(incdir)/sudo_util.h $(srcdir)/sudo.h $(top_builddir)/config.h \
           $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/get_pty.c
get_pty.i: $(srcdir)/get_pty.c $(incdir)/compat/stdbool.h \
           $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
           $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
           $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
           $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
           $(incdir)/sudo_util.h $(srcdir)/sudo.h $(top_builddir)/config.h \
           $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/get_pty.c > $@
get_pty.plog: get_pty.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/get_pty.c --i-file get_pty.i --output-file $@
hooks.o: $(srcdir)/hooks.c $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \
         $(incdir)/sudo_conf.h $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
         $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
         $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h $(incdir)/sudo_util.h \
         $(srcdir)/sudo.h $(srcdir)/sudo_plugin_int.h $(top_builddir)/config.h \
         $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/hooks.c
hooks.i: $(srcdir)/hooks.c $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \
         $(incdir)/sudo_conf.h $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
         $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
         $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h $(incdir)/sudo_util.h \
         $(srcdir)/sudo.h $(srcdir)/sudo_plugin_int.h $(top_builddir)/config.h \
         $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/hooks.c > $@
hooks.plog: hooks.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/hooks.c --i-file hooks.i --output-file $@
intercept.pb-c.lo: $(srcdir)/intercept.pb-c.c $(incdir)/intercept.pb-c.h \
                   $(incdir)/protobuf-c/protobuf-c.h
	$(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/intercept.pb-c.c
intercept.pb-c.plog: $(srcdir)/intercept.pb-c.c
	touch $@
intercept.pb-c.o: $(srcdir)/intercept.pb-c.c $(incdir)/intercept.pb-c.h \
                  $(incdir)/protobuf-c/protobuf-c.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/intercept.pb-c.c
limits.o: $(srcdir)/limits.c $(incdir)/compat/stdbool.h \
          $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h $(incdir)/sudo_debug.h \
          $(incdir)/sudo_event.h $(incdir)/sudo_fatal.h \
          $(incdir)/sudo_gettext.h $(incdir)/sudo_plugin.h \
          $(incdir)/sudo_queue.h $(incdir)/sudo_util.h $(srcdir)/sudo.h \
          $(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/limits.c
limits.i: $(srcdir)/limits.c $(incdir)/compat/stdbool.h \
          $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h $(incdir)/sudo_debug.h \
          $(incdir)/sudo_event.h $(incdir)/sudo_fatal.h \
          $(incdir)/sudo_gettext.h $(incdir)/sudo_plugin.h \
          $(incdir)/sudo_queue.h $(incdir)/sudo_util.h $(srcdir)/sudo.h \
          $(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/limits.c > $@
limits.plog: limits.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/limits.c --i-file limits.i --output-file $@
load_plugins.o: $(srcdir)/load_plugins.c $(incdir)/compat/stdbool.h \
                $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
                $(incdir)/sudo_debug.h $(incdir)/sudo_dso.h \
                $(incdir)/sudo_event.h $(incdir)/sudo_fatal.h \
                $(incdir)/sudo_gettext.h $(incdir)/sudo_plugin.h \
                $(incdir)/sudo_queue.h $(incdir)/sudo_util.h $(srcdir)/sudo.h \
                $(srcdir)/sudo_plugin_int.h $(top_builddir)/config.h \
                $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/load_plugins.c
load_plugins.i: $(srcdir)/load_plugins.c $(incdir)/compat/stdbool.h \
                $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
                $(incdir)/sudo_debug.h $(incdir)/sudo_dso.h \
                $(incdir)/sudo_event.h $(incdir)/sudo_fatal.h \
                $(incdir)/sudo_gettext.h $(incdir)/sudo_plugin.h \
                $(incdir)/sudo_queue.h $(incdir)/sudo_util.h $(srcdir)/sudo.h \
                $(srcdir)/sudo_plugin_int.h $(top_builddir)/config.h \
                $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/load_plugins.c > $@
load_plugins.plog: load_plugins.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/load_plugins.c --i-file load_plugins.i --output-file $@
net_ifs.o: $(srcdir)/net_ifs.c $(incdir)/compat/stdbool.h \
           $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
           $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
           $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
           $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
           $(incdir)/sudo_util.h $(srcdir)/sudo.h $(top_builddir)/config.h \
           $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/net_ifs.c
net_ifs.i: $(srcdir)/net_ifs.c $(incdir)/compat/stdbool.h \
           $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
           $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
           $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
           $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
           $(incdir)/sudo_util.h $(srcdir)/sudo.h $(top_builddir)/config.h \
           $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/net_ifs.c > $@
net_ifs.plog: net_ifs.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/net_ifs.c --i-file net_ifs.i --output-file $@
openbsd.o: $(srcdir)/openbsd.c $(incdir)/compat/stdbool.h \
           $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
           $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
           $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
           $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
           $(incdir)/sudo_util.h $(srcdir)/sudo.h $(top_builddir)/config.h \
           $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/openbsd.c
openbsd.i: $(srcdir)/openbsd.c $(incdir)/compat/stdbool.h \
           $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
           $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
           $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
           $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
           $(incdir)/sudo_util.h $(srcdir)/sudo.h $(top_builddir)/config.h \
           $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/openbsd.c > $@
openbsd.plog: openbsd.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/openbsd.c --i-file openbsd.i --output-file $@
parse_args.o: $(srcdir)/parse_args.c $(incdir)/compat/getopt.h \
              $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \
              $(incdir)/sudo_conf.h $(incdir)/sudo_debug.h \
              $(incdir)/sudo_event.h $(incdir)/sudo_fatal.h \
              $(incdir)/sudo_gettext.h $(incdir)/sudo_lbuf.h \
              $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
              $(incdir)/sudo_util.h $(srcdir)/sudo.h $(top_builddir)/config.h \
              $(top_builddir)/pathnames.h ./sudo_usage.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/parse_args.c
parse_args.i: $(srcdir)/parse_args.c $(incdir)/compat/getopt.h \
              $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \
              $(incdir)/sudo_conf.h $(incdir)/sudo_debug.h \
              $(incdir)/sudo_event.h $(incdir)/sudo_fatal.h \
              $(incdir)/sudo_gettext.h $(incdir)/sudo_lbuf.h \
              $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
              $(incdir)/sudo_util.h $(srcdir)/sudo.h $(top_builddir)/config.h \
              $(top_builddir)/pathnames.h ./sudo_usage.h
	$(CPP) $(CPPFLAGS) $(srcdir)/parse_args.c > $@
parse_args.plog: parse_args.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/parse_args.c --i-file parse_args.i --output-file $@
preload.o: $(srcdir)/preload.c $(incdir)/compat/stdbool.h \
           $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
           $(incdir)/sudo_debug.h $(incdir)/sudo_dso.h $(incdir)/sudo_event.h \
           $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
           $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
           $(incdir)/sudo_util.h $(srcdir)/sudo.h $(top_builddir)/config.h \
           $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/preload.c
preload.i: $(srcdir)/preload.c $(incdir)/compat/stdbool.h \
           $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
           $(incdir)/sudo_debug.h $(incdir)/sudo_dso.h $(incdir)/sudo_event.h \
           $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
           $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
           $(incdir)/sudo_util.h $(srcdir)/sudo.h $(top_builddir)/config.h \
           $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/preload.c > $@
preload.plog: preload.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/preload.c --i-file preload.i --output-file $@
preserve_fds.o: $(srcdir)/preserve_fds.c $(incdir)/compat/stdbool.h \
                $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
                $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
                $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
                $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
                $(incdir)/sudo_util.h $(srcdir)/sudo.h \
                $(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/preserve_fds.c
preserve_fds.i: $(srcdir)/preserve_fds.c $(incdir)/compat/stdbool.h \
                $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
                $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
                $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
                $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
                $(incdir)/sudo_util.h $(srcdir)/sudo.h \
                $(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/preserve_fds.c > $@
preserve_fds.plog: preserve_fds.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/preserve_fds.c --i-file preserve_fds.i --output-file $@
selinux.o: $(srcdir)/selinux.c $(incdir)/compat/stdbool.h \
           $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
           $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
           $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
           $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
           $(incdir)/sudo_util.h $(srcdir)/sudo.h $(srcdir)/sudo_exec.h \
           $(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/selinux.c
selinux.i: $(srcdir)/selinux.c $(incdir)/compat/stdbool.h \
           $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
           $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
           $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
           $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
           $(incdir)/sudo_util.h $(srcdir)/sudo.h $(srcdir)/sudo_exec.h \
           $(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/selinux.c > $@
selinux.plog: selinux.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/selinux.c --i-file selinux.i --output-file $@
sesh.o: $(srcdir)/sesh.c $(incdir)/compat/getopt.h $(incdir)/compat/stdbool.h \
        $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h $(incdir)/sudo_debug.h \
        $(incdir)/sudo_event.h $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
        $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h $(incdir)/sudo_util.h \
        $(srcdir)/sudo.h $(srcdir)/sudo_edit.h $(srcdir)/sudo_exec.h \
        $(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/sesh.c
sesh.i: $(srcdir)/sesh.c $(incdir)/compat/getopt.h $(incdir)/compat/stdbool.h \
        $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h $(incdir)/sudo_debug.h \
        $(incdir)/sudo_event.h $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
        $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h $(incdir)/sudo_util.h \
        $(srcdir)/sudo.h $(srcdir)/sudo_edit.h $(srcdir)/sudo_exec.h \
        $(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/sesh.c > $@
sesh.plog: sesh.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/sesh.c --i-file sesh.i --output-file $@
signal.o: $(srcdir)/signal.c $(incdir)/compat/stdbool.h \
          $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h $(incdir)/sudo_debug.h \
          $(incdir)/sudo_event.h $(incdir)/sudo_fatal.h \
          $(incdir)/sudo_gettext.h $(incdir)/sudo_plugin.h \
          $(incdir)/sudo_queue.h $(incdir)/sudo_util.h $(srcdir)/sudo.h \
          $(srcdir)/sudo_exec.h $(top_builddir)/config.h \
          $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/signal.c
signal.i: $(srcdir)/signal.c $(incdir)/compat/stdbool.h \
          $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h $(incdir)/sudo_debug.h \
          $(incdir)/sudo_event.h $(incdir)/sudo_fatal.h \
          $(incdir)/sudo_gettext.h $(incdir)/sudo_plugin.h \
          $(incdir)/sudo_queue.h $(incdir)/sudo_util.h $(srcdir)/sudo.h \
          $(srcdir)/sudo_exec.h $(top_builddir)/config.h \
          $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/signal.c > $@
signal.plog: signal.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/signal.c --i-file signal.i --output-file $@
solaris.o: $(srcdir)/solaris.c $(incdir)/compat/stdbool.h \
           $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
           $(incdir)/sudo_debug.h $(incdir)/sudo_dso.h $(incdir)/sudo_event.h \
           $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
           $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
           $(incdir)/sudo_util.h $(srcdir)/sudo.h $(top_builddir)/config.h \
           $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/solaris.c
solaris.i: $(srcdir)/solaris.c $(incdir)/compat/stdbool.h \
           $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
           $(incdir)/sudo_debug.h $(incdir)/sudo_dso.h $(incdir)/sudo_event.h \
           $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
           $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
           $(incdir)/sudo_util.h $(srcdir)/sudo.h $(top_builddir)/config.h \
           $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/solaris.c > $@
solaris.plog: solaris.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/solaris.c --i-file solaris.i --output-file $@
sudo.o: $(srcdir)/sudo.c $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \
        $(incdir)/sudo_conf.h $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
        $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
        $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h $(incdir)/sudo_util.h \
        $(srcdir)/sudo.h $(srcdir)/sudo_plugin_int.h $(top_builddir)/config.h \
        $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/sudo.c
sudo.i: $(srcdir)/sudo.c $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \
        $(incdir)/sudo_conf.h $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
        $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
        $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h $(incdir)/sudo_util.h \
        $(srcdir)/sudo.h $(srcdir)/sudo_plugin_int.h $(top_builddir)/config.h \
        $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/sudo.c > $@
sudo.plog: sudo.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/sudo.c --i-file sudo.i --output-file $@
sudo_edit.o: $(srcdir)/sudo_edit.c $(incdir)/compat/stdbool.h \
             $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
             $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
             $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
             $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
             $(incdir)/sudo_util.h $(srcdir)/sudo.h $(srcdir)/sudo_edit.h \
             $(srcdir)/sudo_exec.h $(top_builddir)/config.h \
             $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/sudo_edit.c
sudo_edit.i: $(srcdir)/sudo_edit.c $(incdir)/compat/stdbool.h \
             $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
             $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
             $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
             $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
             $(incdir)/sudo_util.h $(srcdir)/sudo.h $(srcdir)/sudo_edit.h \
             $(srcdir)/sudo_exec.h $(top_builddir)/config.h \
             $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/sudo_edit.c > $@
sudo_edit.plog: sudo_edit.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/sudo_edit.c --i-file sudo_edit.i --output-file $@
sudo_intercept.lo: $(srcdir)/sudo_intercept.c $(incdir)/compat/stdbool.h \
                   $(incdir)/sudo_compat.h $(incdir)/sudo_debug.h \
                   $(incdir)/sudo_queue.h $(incdir)/sudo_util.h \
                   $(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/sudo_intercept.c
sudo_intercept.i: $(srcdir)/sudo_intercept.c $(incdir)/compat/stdbool.h \
                   $(incdir)/sudo_compat.h $(incdir)/sudo_debug.h \
                   $(incdir)/sudo_queue.h $(incdir)/sudo_util.h \
                   $(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/sudo_intercept.c > $@
sudo_intercept.plog: sudo_intercept.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/sudo_intercept.c --i-file sudo_intercept.i --output-file $@
sudo_intercept_common.lo: $(srcdir)/sudo_intercept_common.c \
                          $(incdir)/compat/stdbool.h \
                          $(incdir)/intercept.pb-c.h \
                          $(incdir)/protobuf-c/protobuf-c.h \
                          $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
                          $(incdir)/sudo_debug.h $(incdir)/sudo_fatal.h \
                          $(incdir)/sudo_gettext.h $(incdir)/sudo_plugin.h \
                          $(incdir)/sudo_queue.h $(incdir)/sudo_util.h \
                          $(srcdir)/sudo_exec.h $(top_builddir)/config.h
	$(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/sudo_intercept_common.c
sudo_intercept_common.i: $(srcdir)/sudo_intercept_common.c \
                          $(incdir)/compat/stdbool.h \
                          $(incdir)/intercept.pb-c.h \
                          $(incdir)/protobuf-c/protobuf-c.h \
                          $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
                          $(incdir)/sudo_debug.h $(incdir)/sudo_fatal.h \
                          $(incdir)/sudo_gettext.h $(incdir)/sudo_plugin.h \
                          $(incdir)/sudo_queue.h $(incdir)/sudo_util.h \
                          $(srcdir)/sudo_exec.h $(top_builddir)/config.h
	$(CPP) $(CPPFLAGS) $(srcdir)/sudo_intercept_common.c > $@
sudo_intercept_common.plog: sudo_intercept_common.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/sudo_intercept_common.c --i-file sudo_intercept_common.i --output-file $@
suspend_parent.o: $(srcdir)/suspend_parent.c $(incdir)/compat/stdbool.h \
                  $(incdir)/sudo_debug.h $(incdir)/sudo_fatal.h \
                  $(incdir)/sudo_gettext.h $(incdir)/sudo_plugin.h \
                  $(incdir)/sudo_queue.h $(srcdir)/sudo_exec.h \
                  $(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/suspend_parent.c
suspend_parent.i: $(srcdir)/suspend_parent.c $(incdir)/compat/stdbool.h \
                  $(incdir)/sudo_debug.h $(incdir)/sudo_fatal.h \
                  $(incdir)/sudo_gettext.h $(incdir)/sudo_plugin.h \
                  $(incdir)/sudo_queue.h $(srcdir)/sudo_exec.h \
                  $(top_builddir)/config.h $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/suspend_parent.c > $@
suspend_parent.plog: suspend_parent.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/suspend_parent.c --i-file suspend_parent.i --output-file $@
test_ptrace.o: $(srcdir)/regress/intercept/test_ptrace.c \
               $(incdir)/compat/endian.h $(incdir)/compat/stdbool.h \
               $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
               $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
               $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
               $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
               $(incdir)/sudo_util.h $(srcdir)/exec_intercept.h \
               $(srcdir)/exec_ptrace.c $(srcdir)/exec_ptrace.h \
               $(srcdir)/sudo.h $(srcdir)/sudo_exec.h $(top_builddir)/config.h \
               $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/regress/intercept/test_ptrace.c
test_ptrace.i: $(srcdir)/regress/intercept/test_ptrace.c \
               $(incdir)/compat/endian.h $(incdir)/compat/stdbool.h \
               $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
               $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
               $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
               $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
               $(incdir)/sudo_util.h $(srcdir)/exec_intercept.h \
               $(srcdir)/exec_ptrace.c $(srcdir)/exec_ptrace.h \
               $(srcdir)/sudo.h $(srcdir)/sudo_exec.h $(top_builddir)/config.h \
               $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/regress/intercept/test_ptrace.c > $@
test_ptrace.plog: test_ptrace.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/regress/intercept/test_ptrace.c --i-file test_ptrace.i --output-file $@
tgetpass.o: $(srcdir)/tgetpass.c $(incdir)/compat/stdbool.h \
            $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
            $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
            $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
            $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
            $(incdir)/sudo_util.h $(srcdir)/sudo.h $(top_builddir)/config.h \
            $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/tgetpass.c
tgetpass.i: $(srcdir)/tgetpass.c $(incdir)/compat/stdbool.h \
            $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
            $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
            $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
            $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
            $(incdir)/sudo_util.h $(srcdir)/sudo.h $(top_builddir)/config.h \
            $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/tgetpass.c > $@
tgetpass.plog: tgetpass.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/tgetpass.c --i-file tgetpass.i --output-file $@
ttyname.o: $(srcdir)/ttyname.c $(incdir)/compat/stdbool.h \
           $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
           $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
           $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
           $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
           $(incdir)/sudo_util.h $(srcdir)/sudo.h $(top_builddir)/config.h \
           $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/ttyname.c
ttyname.i: $(srcdir)/ttyname.c $(incdir)/compat/stdbool.h \
           $(incdir)/sudo_compat.h $(incdir)/sudo_conf.h \
           $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
           $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
           $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \
           $(incdir)/sudo_util.h $(srcdir)/sudo.h $(top_builddir)/config.h \
           $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/ttyname.c > $@
ttyname.plog: ttyname.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/ttyname.c --i-file ttyname.i --output-file $@
utmp.o: $(srcdir)/utmp.c $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \
        $(incdir)/sudo_conf.h $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
        $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
        $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h $(incdir)/sudo_util.h \
        $(srcdir)/sudo.h $(srcdir)/sudo_exec.h $(top_builddir)/config.h \
        $(top_builddir)/pathnames.h
	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/utmp.c
utmp.i: $(srcdir)/utmp.c $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \
        $(incdir)/sudo_conf.h $(incdir)/sudo_debug.h $(incdir)/sudo_event.h \
        $(incdir)/sudo_fatal.h $(incdir)/sudo_gettext.h \
        $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h $(incdir)/sudo_util.h \
        $(srcdir)/sudo.h $(srcdir)/sudo_exec.h $(top_builddir)/config.h \
        $(top_builddir)/pathnames.h
	$(CPP) $(CPPFLAGS) $(srcdir)/utmp.c > $@
utmp.plog: utmp.i
	rm -f $@; pvs-studio --cfg $(PVS_CFG) --source-file $(srcdir)/utmp.c --i-file utmp.i --output-file $@
